package Ubicacion;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;

import Excepciones.FueraDeLimites;
import Juego.SerializablePropia;
import MapaStuff.Hectarea;

public abstract class ZigZag extends Direccion{
	
	protected Direccion direccion1;
	protected Direccion direccion2;
	protected int contador=0;
	
	public Hectarea hectareaSiguiente(Hectarea unaHectarea) throws FueraDeLimites {
		if (contador==0){
			contador++;
			return direccion1.hectareaSiguiente(unaHectarea);}
		else {
			contador--;
			return direccion2.hectareaSiguiente(unaHectarea);
			}	
	}
	
	@Override
	public Element serializar(Document doc) {
		Element ele=super.serializar(doc);
		ele.setAttribute("contador",Integer.toString(contador));
		return ele;
	}
	
	protected static void hidratarElementosHeredados(ZigZag z,Node node){
		Element nuevo=(Element) node;
		z.contador=Integer.parseInt(nuevo.getAttribute("contador"));
		
	}
	
	public static ZigZag hidratar(Node node){
		return (ZigZag) SerializablePropia.hidratar(node);
		
	}
}
